perm filename F8S[F8,ALS] blob sn#292847 filedate 1977-07-12 generic text, type T, neo UTF8
*TREE MOBS PLY0 COL0 PLOC KLOC ELOC PLYT PLYD PLYH START
*
*RAM assignments
TREE    EQU     H'0D00'         Start of tree data (14 blocks of 16 bytes each)
MOBS    EQU     H'0DF0'         RAM space for mobility bytes (14 BYTES)
PLY0    EQU     H'0DFE'         Place for player's ply depth choice
COL0    EQU     H'0DFF'         Place for color choice (next after PLY0)
*
*Scratch pad assignments
PLOC    EQU     3               LISU value for ACTIVE and PASSIVE
KLOC    EQU     4               LISU value for KING's and special data
ELOC    EQU     5               LISU value for EMPTY's area
*
*Mimimum ply depths
PLYT    EQU     3               Ply depth for Robot Tom
PLYD    EQU     4               Ply depth for Robot Dick
PLYH    EQU     5               Ply depth for Robot Harry
PLYM    EQU     7               Ply to stop on first non-jump
*
*Set up initial boards both in SC and in blocks 0 and 1
START   LISU    PLOC
        LISL    0
        LI      H'FF'           Full double row of pieces
        LR      I,A             First byte of ACTIVE
        LI      H'F0'           1 row only
        LR      I,A             Second byte of active
        CLR
        LR      I,A             Part of board with no active pieces
        LR      I,A             Part of board with no active pieces
        LR      I,A             Part of board with no passive pieces
        LR      I,A             Part of board with no passive pieces
        LI      H'F'            1 row only (in second half of byte)
        LR      I,A             byte of PASSIVE
        LI      H'FF'           Full double row of pieces
        LR      I,A             Last byte with Passive pieces
        LISU    KLOC
        LISL    0
        CLR
        LR      I,A             4 king bytes next (all empty)
        LR      I,A
        LR      I,A
        LR      I,A
        LI      H'F0'           The 4 leftmost bits for pieces that can move RF
        LR      I,A             The MOVE byte
        LIS     4               BYTE # 1 RF normal move with no piece debit
        LR      I,A             
        LI      H'80'           Set score at -128 ( a lose unless a move is found.
        LR      I,A
        CLR                     With position advantage of 0
        LR      I,A
        DCI     PLY0            Location to store ply depth number
        LIS     PLYT            The minimum setting for PLY0 (presently 3)
        ST                      Save so 7 can be freed as necessary
        LR      7,A             Set originally for 3
        CLR
        ST                      Save so 8 can also be freed
        LR      8,A             Set for black to be active
        DCI     TREE            Set to start of data space (presently H'0D00')
        LR      H,DC            Note: H always points to start of a block
        PI      SCRC    Ready for opponents move if he elects BLACK
        PI      SCRC    Ready for Machine to play BLACK
*Now ask for side election or opponents first move
*These are stored in COL0 and PLY0 and the values are transfered to registers
*7 and 8 when the players move is to be verified and when a
*tree search is initiated.  Note that these registers are used as CNTR
*counter for image flop, CVAL character value register, TIM2 time counter
*register, and TEMP temporary register used to contain a character that
*is read or to be written.